parser grammar AnasintANTLR;

options {
  language = Java;
  tokenVocab = AnalexANTLR;
}

@header {
  package Practica6.Ambiguedad;
}

@members {
  private ArrayList<String> errors = new ArrayList<String>();
  public void displayRecognitionError(String[] tokenNames, RecognitionException e) {
    String hdr = getErrorHeader(e);
    String msg = getErrorMessage(e, tokenNames);
    errors.add(hdr + " " + msg);
  }
   
  public ArrayList<String> getErrors() {
    return errors;
  }
}
 
entrada: (sentencia)+;
sentencia: REGLA COLON instruccion SEPARADOR;
instruccion: valores (valores | OP_OR valores)*;
valores: (TOKEN | REGLA | LITERAL) | (LEFT_PAREN instruccion RIGHT_PAREN (COMODINES)?);  
